package com.scalar.chiptrack.operations.dataentry.inventoryReceive.actioncommands;

import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import org.apache.struts.action.ActionForm;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

import com.scalar.chiptrack.operations.dataentry.LotDetails;
import com.scalar.chiptrack.operations.dataentry.inventoryReceive.forms.InventoryReceiveForm;
import com.scalar.chiptrack.users.User;
import com.scalar.chiptrack.users.Functionality;
import com.scalar.chiptrack.commons.SessionKeys;
import com.scalar.chiptrack.actioncommands.ActionCommand;

import java.util.HashMap;


/**
 * Created by IntelliJ IDEA.
 * User: ChandraSekhar
 * Date: Fed 06, 2008
 * Time: 12:28:08 PM
 */
public class InventoryReceiveLoadProcessTypesCommand extends ActionCommand
{

    private static final String ACTION_NAME = "/inventoryReceive.do";

    public ActionForward execute(ActionMapping mapping,
                                 ActionForm form,
                                 HttpServletRequest request,
                                 HttpServletResponse response) throws Exception
    {


        InventoryReceiveForm invReceiveForm = (InventoryReceiveForm) form;

        HashMap errors = new HashMap();
        HashMap info = new HashMap();
        String action = request.getParameter("action");

        request.setAttribute(INFO_MESSAGES, info);
        request.setAttribute(ERROR_MESSAGES, errors);
        
        LotDetails lotDetails = new LotDetails();
        HttpSession mSession = request.getSession();
        User user = (User) mSession.getAttribute(SessionKeys.USER_KEY);

        if (user == null)
        {
            mSession.setAttribute(SessionKeys.SOURCE_PAGE_KEY, ACTION_NAME);
            return (mapping.findForward("login"));
        }
        else
        {
            if (user.isActionAllowed(Functionality.DATA_ENTRY, User.USER_ACTION_MODIFY))
            {
                request.setAttribute("showMessage", "FALSE");
            }
            else
            {
                request.setAttribute("showMessage", "TRUE");
            }
        }

        invReceiveForm.setProcessType("0");
        invReceiveForm.setProcessStepId(0);
        invReceiveForm.setLocationId(0);
        invReceiveForm.setLotId(0);
        invReceiveForm.setTransitLotsList( null );

        request.setAttribute("processTypeList", lotDetails.getInventoryReceiveProcessList() );
        request.setAttribute("action", action);

        return mapping.findForward("inventoryReceive");
    }
}
